ostree_repo_write_metadata_async
ostree_repo_write_metadata_finish
ostree_repo_write_metadata_trusted
+ostree_repo_write_metadata_stream_trusted
ostree_repo_write_content
ostree_repo_write_content_trusted
ostree_repo_write_content_async
cancellable, error);
}
+/**
+ * ostree_repo_write_metadata_stream_trusted:
+ * @self: Repo
+ * @objtype: Object type
+ * @checksum: Store object with this ASCII SHA256 checksum
+ * @object_input: Metadata object stream
+ * @length: Length, may be 0 for unknown
+ * @cancellable: Cancellable
+ * @error: Error
+ *
+ * Store the metadata object @variant; the provided @checksum is
+ * trusted.
+ */
+gboolean
+ostree_repo_write_metadata_stream_trusted (OstreeRepo *self,
+ OstreeObjectType objtype,
+ const char *checksum,
+ GInputStream *object_input,
+ guint64 length,
+ GCancellable *cancellable,
+ GError **error)
+{
+ /* Ignore provided length for now */
+ return write_object (self, objtype, checksum, object_input, 0, NULL,
+ cancellable, error);
+}
+
/**
* ostree_repo_write_metadata_trusted:
* @self: Repo
GCancellable *cancellable,
GError **error);
+gboolean ostree_repo_write_metadata_stream_trusted (OstreeRepo *self,
+ OstreeObjectType objtype,
+ const char *checksum,
+ GInputStream *object_input,
+ guint64 length,
+ GCancellable *cancellable,
+ GError **error);
+
gboolean ostree_repo_write_content_trusted (OstreeRepo *self,
const char *checksum,
GInputStream *object_input,
GError **error)
{
gboolean ret = FALSE;
+ guint64 length;
+ gs_unref_object GInputStream *object = NULL;
+
+ if (!ostree_repo_load_object_stream (data->src_repo, objtype, checksum,
+ &object, &length,
+ cancellable, error))
+ goto out;
if (objtype == OSTREE_OBJECT_TYPE_FILE)
{
- guint64 length;
- gs_unref_object GInputStream *file_object = NULL;
-
- if (!ostree_repo_load_object_stream (data->src_repo, objtype, checksum,
- &file_object, &length,
- cancellable, error))
- goto out;
-
if (!ostree_repo_write_content_trusted (data->dest_repo, checksum,
- file_object, length,
+ object, length,
cancellable, error))
goto out;
}
else
{
- gs_unref_variant GVariant *metadata = NULL;
-
- if (!ostree_repo_load_variant (data->src_repo, objtype, checksum, &metadata,
- error))
- goto out;
-
- if (!ostree_repo_write_metadata_trusted (data->dest_repo, objtype, checksum, metadata,
- cancellable, error))
+ if (!ostree_repo_write_metadata_stream_trusted (data->dest_repo, objtype,
+ checksum, object, length,
+ cancellable, error))
goto out;
}